import requests
from bs4 import BeautifulSoup
import pymongo

#前置：使用Rquests 获取URL的response
url = "http://www.techlabplt.com:8080/BD-PC/priceList"
resp = requests.get(url)
resp.encoding = 'UTF-8'
'''
使用BS4解析数据,并输出
'''
#1.把页面源代码交给BeautifulSoup进行处理，生成BS对象并指定html解析器
pageHtml = BeautifulSoup(resp.text, "html.parser")
#2.获取html内的div，div的class为tbl-body。里面包含着需要爬取的数据
tableDiv = pageHtml.find("div", attrs={"class": "tbl-body"})
#3.获取所有的tr
dataDiv = tableDiv.findAll("tr")
#4.删除第一个表头数据
del(dataDiv[0])
#5.建立MongoDB数据库连接并指定spider数据库下的products集合
connect = pymongo.MongoClient(
    # MongoDB数据库的IP地址，127.0.0.1（代表本地）
    host='127.0.0.1',
    # MongoDB数据库服务的端口号；默认端口号27017
    port=27017
)
spiderDB = connect['spider']
productCollection = spiderDB['products']

#6.定义插入数据集
productList = []
#7.循环遍历每一行的数据
for data in dataDiv:
    #得到每一行中的每一列
    oneData = data.findAll("td")
    product = {
        'top_class': oneData[0].text,
        'sec_class': oneData[1].text,
        'product_name': oneData[2].text,
        'low_price': oneData[3].text,
        'avg_price': oneData[4].text,
        'high_price': oneData[5].text,
        'specs': oneData[6].text,
        'origin': oneData[7].text,
        'unit': oneData[8].text,
        'update_time': oneData[9].text,
    }
    productList.append(product)

#8.存入集合
result = productCollection.insert_many(productList)
print(result)
#9.查询集合,循环遍历每一行数据
results = productCollection.find()
for result in results:
    print(result)

